Software companies design software package offerings that are distributed to a wide variety of customers. For example, a software company may provide a software package offering to customer, and may also provide the same software package offering to another internal customer, such as a different department within the same company. Although the technology package delivered to each customer may be the same in each case, the legal terms and conditions for using the software package offering may be different for different users.
In addition, a software product may be capable of supporting many different operational environments, and may also enable or disable particular features based upon the operational environment. For example, one customer may use a software product in a “development” environment while another customer may use the same software product in a “production” environment. In this example, a software product's “development” features may be disabled when the software product is used in a “production” environment.
A challenge found with using a software product in different environments, however, is that a software company is typically required to create multiple software package offerings that include the same software product, but each software package offering includes different legal terms and conditions for different customers and different environments. For example, a software product that is intended for a developer environment includes, in its software package offering, a license agreement that incorporates legal terms and conditions that are based upon the use of the software product in a development environment. These legal terms and conditions may not be applicable to a customer that uses the same software product in a production environment.